--
-- Host: localhost    Database: Musica
-- ------------------------------------------------------


--
-- Table structure for table `album`
--

CREATE TABLE `album` (
  `idAlbum` int(11) NOT NULL AUTO_INCREMENT,
  `idGrupo` int(11) DEFAULT NULL,
  `Nombre` varchar(45) DEFAULT NULL,
  `NoCanciones` int(11) DEFAULT NULL,
  `Duracion` time DEFAULT NULL,
  `Lanzamiento` date DEFAULT NULL,
  `NoVentas` double DEFAULT NULL,
  `Genero` varchar(45) DEFAULT NULL,
  `Imagen` varchar(200) DEFAULT NULL,
  PRIMARY KEY (`idAlbum`),
  KEY `idGrupo` (`idGrupo`),
  CONSTRAINT `album_ibfk_1` FOREIGN KEY (`idGrupo`) REFERENCES `grupo` (`idGrupo`) ON DELETE CASCADE ON UPDATE CASCADE
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci;

--
-- Dumping data for table `album`
--

DELIMITER ;;
/*!50003 CREATE*/ /*!50017 DEFINER=`root`@`localhost`*/ /*!50003 trigger agregar_Auditoria_Album AFTER INSERT ON Album
for each ROW INSERT INTO Auditoria_Album(idGrupo, Nombre, NoCanciones, Duracion, Lanzamiento, NoVentas, Genero, Imagen,
    usuario, modificado, proceso, idAlbum) VALUES(NEW.idGrupo, NEW.Nombre, NEW.NoCanciones, NEW.Duracion, NEW.Lanzamiento, NEW.NoVentas, NEW.Genero, NEW.Imagen,
    USER(), NOW(), 'Dato Insertado', NEW.idAlbum) */;;
DELIMITER ;
DELIMITER ;;
/*!50003 CREATE*/ /*!50017 DEFINER=`root`@`localhost`*/ /*!50003 trigger actualiza_Auditoria_Album AFTER UPDATE ON Album
for each ROW INSERT INTO Auditoria_Album(idGrupo, Nombre, NoCanciones, Duracion, Lanzamiento, NoVentas, Genero, Imagen,
    usuario, modificado, proceso, idAlbum) VALUES(NEW.idGrupo, NEW.Nombre, NEW.NoCanciones, NEW.Duracion, NEW.Lanzamiento, NEW.NoVentas, NEW.Genero, NEW.Imagen,
    USER(), NOW(), 'Dato Actualizado', NEW.idAlbum) */;;
DELIMITER ;
DELIMITER ;;
/*!50003 CREATE*/ /*!50017 DEFINER=`root`@`localhost`*/ /*!50003 trigger eliminar_Auditoria_Album AFTER DELETE ON Album
for each ROW INSERT INTO Auditoria_Album(idGrupo, Nombre, NoCanciones, Duracion, Lanzamiento, NoVentas, Genero, Imagen,
    usuario, modificado, proceso, idAlbum) VALUES(OLD.idGrupo, OLD.Nombre, OLD.NoCanciones, OLD.Duracion, OLD.Lanzamiento, OLD.NoVentas, OLD.Genero, OLD.Imagen,
    USER(), NOW(), 'Dato Eliminado', OLD.idAlbum) */;;
DELIMITER ;

--
-- Table structure for table `artista`
--

CREATE TABLE `artista` (
  `idArtista` int(11) NOT NULL AUTO_INCREMENT,
  `Nombre` varchar(45) DEFAULT NULL,
  `Apellidos` varchar(45) DEFAULT NULL,
  `NombreArtistico` varchar(60) DEFAULT NULL,
  `Genero` char(1) DEFAULT NULL,
  `FechaNacimiento` date DEFAULT NULL,
  `FechaDefuncion` date DEFAULT NULL,
  `Pais` varchar(45) DEFAULT NULL,
  `Instrumento` varchar(45) DEFAULT NULL,
  `Estatura` double DEFAULT NULL,
  `Imagen` varchar(200) DEFAULT NULL,
  PRIMARY KEY (`idArtista`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci;

--
-- Dumping data for table `artista`
--

DELIMITER ;;
/*!50003 CREATE*/ /*!50017 DEFINER=`root`@`localhost`*/ /*!50003 trigger agregar_Auditoria_Artista after insert on Artista
for each row INSERT INTO Auditoria_Artista(Nombre, Apellidos, NombreArtistico, Genero, FechaNacimiento,
    FechaDefuncion, Pais, Instrumento, Estatura, Imagen,
    usuario, modificado, proceso, idArtista) values(NEW.Nombre, NEW.Apellidos, NEW.NombreArtistico, NEW.Genero, NEW.FechaNacimiento,
    NEW.FechaDefuncion, NEW.Pais, NEW.Instrumento, NEW.Estatura, NEW.Imagen,
    USER(), NOW(), 'Dato Insertado', NEW.idArtista) */;;
DELIMITER ;
DELIMITER ;;
/*!50003 CREATE*/ /*!50017 DEFINER=`root`@`localhost`*/ /*!50003 trigger actualiza_Auditoria_Artista after UPDATE on Artista
for each row INSERT INTO Auditoria_Artista(Nombre, Apellidos, NombreArtistico, Genero, FechaNacimiento,
    FechaDefuncion, Pais, Instrumento, Estatura, Imagen,
    usuario, modificado, proceso, idArtista) values(NEW.Nombre, NEW.Apellidos, NEW.NombreArtistico, NEW.Genero, NEW.FechaNacimiento,
    NEW.FechaDefuncion, NEW.Pais, NEW.Instrumento, NEW.Estatura, NEW.Imagen,
    USER(), NOW(), 'Dato Actualizado', NEW.idArtista) */;;
DELIMITER ;
DELIMITER ;;
/*!50003 CREATE*/ /*!50017 DEFINER=`root`@`localhost`*/ /*!50003 trigger eliminar_Auditoria_Artista after DELETE on Artista
for each row INSERT INTO Auditoria_Artista(Nombre, Apellidos, NombreArtistico, Genero, FechaNacimiento,
    FechaDefuncion, Pais, Instrumento, Estatura, Imagen,
    usuario, modificado, proceso, idArtista) values(OLD.Nombre, OLD.Apellidos, OLD.NombreArtistico, OLD.Genero, OLD.FechaNacimiento,
    OLD.FechaDefuncion, OLD.Pais, OLD.Instrumento, OLD.Estatura, OLD.Imagen,
    USER(), NOW(), 'Dato Eliminado', OLD.idArtista) */;;
DELIMITER ;

--
-- Table structure for table `auditoria_album`
--

CREATE TABLE `auditoria_album` (
  `id` int(11) NOT NULL AUTO_INCREMENT,
  `idGrupo` int(11) DEFAULT NULL,
  `Nombre` varchar(45) DEFAULT NULL,
  `NoCanciones` int(11) DEFAULT NULL,
  `Duracion` time DEFAULT NULL,
  `Lanzamiento` date DEFAULT NULL,
  `NoVentas` double DEFAULT NULL,
  `Genero` varchar(45) DEFAULT NULL,
  `Imagen` varchar(200) DEFAULT NULL,
  `usuario` varchar(45) DEFAULT NULL,
  `modificado` datetime DEFAULT NULL,
  `proceso` varchar(45) DEFAULT NULL,
  `idAlbum` int(11) DEFAULT NULL,
  PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci;

--
-- Dumping data for table `auditoria_album`
--


--
-- Table structure for table `auditoria_artista`
--

CREATE TABLE `auditoria_artista` (
  `id` int(11) NOT NULL AUTO_INCREMENT,
  `Nombre` varchar(45) DEFAULT NULL,
  `Apellidos` varchar(45) DEFAULT NULL,
  `NombreArtistico` varchar(60) DEFAULT NULL,
  `Genero` char(1) DEFAULT NULL,
  `FechaNacimiento` date DEFAULT NULL,
  `FechaDefuncion` date DEFAULT NULL,
  `Pais` varchar(45) DEFAULT NULL,
  `Instrumento` varchar(45) DEFAULT NULL,
  `Estatura` double DEFAULT NULL,
  `Imagen` varchar(200) DEFAULT NULL,
  `usuario` varchar(45) DEFAULT NULL,
  `modificado` datetime DEFAULT NULL,
  `proceso` varchar(45) DEFAULT NULL,
  `idArtista` int(11) DEFAULT NULL,
  PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci;

--
-- Dumping data for table `auditoria_artista`
--


--
-- Table structure for table `auditoria_cancion`
--

CREATE TABLE `auditoria_cancion` (
  `id` int(11) NOT NULL AUTO_INCREMENT,
  `IdGrupo` int(11) DEFAULT NULL,
  `IdInterprete` int(11) DEFAULT NULL,
  `IdAlbum` int(11) DEFAULT NULL,
  `Nombre` varchar(45) DEFAULT NULL,
  `Duracion` time DEFAULT NULL,
  `Lanzamiento` date DEFAULT NULL,
  `Idioma` varchar(45) DEFAULT NULL,
  `Genero` varchar(45) DEFAULT NULL,
  `usuario` varchar(45) DEFAULT NULL,
  `modificado` datetime DEFAULT NULL,
  `proceso` varchar(45) DEFAULT NULL,
  `idCancion` int(11) DEFAULT NULL,
  PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci;

--
-- Dumping data for table `auditoria_cancion`
--


--
-- Table structure for table `auditoria_disquera`
--

CREATE TABLE `auditoria_disquera` (
  `id` int(11) NOT NULL AUTO_INCREMENT,
  `Nombre` varchar(45) DEFAULT NULL,
  `Correo` varchar(45) DEFAULT NULL,
  `Direccion` varchar(60) DEFAULT NULL,
  `Telefono` bigint(20) DEFAULT NULL,
  `Fundacion` date DEFAULT NULL,
  `Imagen` varchar(200) DEFAULT NULL,
  `usuario` varchar(45) DEFAULT NULL,
  `modificado` datetime DEFAULT NULL,
  `proceso` varchar(45) DEFAULT NULL,
  `idDisquera` int(11) DEFAULT NULL,
  PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci;

--
-- Dumping data for table `auditoria_disquera`
--


--
-- Table structure for table `auditoria_grupo`
--

CREATE TABLE `auditoria_grupo` (
  `id` int(11) NOT NULL AUTO_INCREMENT,
  `idDisquera` int(11) DEFAULT NULL,
  `Nombre` varchar(60) DEFAULT NULL,
  `Origen` varchar(70) DEFAULT NULL,
  `Inicio` date DEFAULT NULL,
  `NoIntegrantes` int(11) DEFAULT NULL,
  `Genero` varchar(45) DEFAULT NULL,
  `Idioma` varchar(45) DEFAULT NULL,
  `Imagen` varchar(200) DEFAULT NULL,
  `usuario` varchar(45) DEFAULT NULL,
  `modificado` datetime DEFAULT NULL,
  `proceso` varchar(45) DEFAULT NULL,
  `idGrupo` int(11) DEFAULT NULL,
  PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci;

--
-- Dumping data for table `auditoria_grupo`
--


--
-- Table structure for table `canciones`
--

CREATE TABLE `canciones` (
  `IdCancion` int(11) NOT NULL AUTO_INCREMENT,
  `IdGrupo` int(11) DEFAULT NULL,
  `IdInterprete` int(11) DEFAULT NULL,
  `IdAlbum` int(11) DEFAULT NULL,
  `Nombre` varchar(45) DEFAULT NULL,
  `Duracion` time DEFAULT NULL,
  `Lanzamiento` date DEFAULT NULL,
  `Idioma` varchar(45) DEFAULT NULL,
  `Genero` varchar(45) DEFAULT NULL,
  PRIMARY KEY (`IdCancion`),
  KEY `IdGrupo` (`IdGrupo`),
  KEY `IdInterprete` (`IdInterprete`),
  KEY `IdAlbum` (`IdAlbum`),
  CONSTRAINT `canciones_ibfk_1` FOREIGN KEY (`IdGrupo`) REFERENCES `grupo` (`idGrupo`) ON DELETE CASCADE ON UPDATE CASCADE,
  CONSTRAINT `canciones_ibfk_2` FOREIGN KEY (`IdInterprete`) REFERENCES `artista` (`idArtista`) ON DELETE CASCADE ON UPDATE CASCADE,
  CONSTRAINT `canciones_ibfk_3` FOREIGN KEY (`IdAlbum`) REFERENCES `album` (`idAlbum`) ON DELETE CASCADE ON UPDATE CASCADE
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci;

--
-- Dumping data for table `canciones`
--

DELIMITER ;;
/*!50003 CREATE*/ /*!50017 DEFINER=`root`@`localhost`*/ /*!50003 trigger agregar_Auditoria_Cancion AFTER INSERT ON Canciones
for each ROW INSERT INTO Auditoria_Cancion(idGrupo, idInterprete, idAlbum, Nombre,
    Duracion, Lanzamiento, Idioma, Genero,
    usuario, modificado, proceso, idCancion) VALUES(NEW.idGrupo, NEW.idInterprete, NEW.idAlbum, NEW.Nombre,
    NEW.Duracion, NEW.Lanzamiento, NEW.Idioma, NEW.Genero,
    USER(), NOW(), 'Dato Insertado', NEW.idCancion) */;;
DELIMITER ;
DELIMITER ;;
/*!50003 CREATE*/ /*!50017 DEFINER=`root`@`localhost`*/ /*!50003 trigger actualiza_Auditoria_Cancion AFTER UPDATE ON Canciones
for each ROW INSERT INTO Auditoria_Cancion(idGrupo, idInterprete, idAlbum, Nombre,
    Duracion, Lanzamiento, Idioma, Genero,
    usuario, modificado, proceso, idCancion) VALUES(NEW.idGrupo, NEW.idInterprete, NEW.idAlbum, NEW.Nombre,
    NEW.Duracion, NEW.Lanzamiento, NEW.Idioma, NEW.Genero,
    USER(), NOW(), 'Dato Actualizado', NEW.idCancion) */;;
DELIMITER ;
DELIMITER ;;
/*!50003 CREATE*/ /*!50017 DEFINER=`root`@`localhost`*/ /*!50003 trigger eliminar_Auditoria_Cancion AFTER DELETE ON Canciones
for each ROW INSERT INTO Auditoria_Cancion(idGrupo, idInterprete, idAlbum, Nombre,
    Duracion, Lanzamiento, Idioma, Genero,
    usuario, modificado, proceso, idCancion) VALUES(OLD.idGrupo, OLD.idInterprete, OLD.idAlbum, OLD.Nombre,
    OLD.Duracion, OLD.Lanzamiento, OLD.Idioma, OLD.Genero,
    USER(), NOW(), 'Dato Eliminado', OLD.idCancion) */;;
DELIMITER ;

--
-- Table structure for table `disquera`
--

CREATE TABLE `disquera` (
  `idDisquera` int(11) NOT NULL AUTO_INCREMENT,
  `Nombre` varchar(45) DEFAULT NULL,
  `Correo` varchar(45) DEFAULT NULL,
  `Direccion` varchar(60) DEFAULT NULL,
  `Telefono` bigint(20) DEFAULT NULL,
  `Fundacion` date DEFAULT NULL,
  `Imagen` varchar(200) DEFAULT NULL,
  PRIMARY KEY (`idDisquera`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci;

--
-- Dumping data for table `disquera`
--

DELIMITER ;;
/*!50003 CREATE*/ /*!50017 DEFINER=`root`@`localhost`*/ /*!50003 trigger agregar_Auditoria_Disquera after INSERT on Disquera
for each row INSERT INTO Auditoria_Disquera(Nombre, Correo, Direccion, Telefono, Fundacion, Imagen,
    usuario, modificado, proceso, idDisquera) values(NEW.Nombre, NEW.Correo, NEW.Direccion, NEW.Telefono, NEW.Fundacion, NEW.Imagen,
    USER(), NOW(), 'Dato Insertado', NEW.idDisquera) */;;
DELIMITER ;
DELIMITER ;;
/*!50003 CREATE*/ /*!50017 DEFINER=`root`@`localhost`*/ /*!50003 trigger actualiza_Auditoria_Disquera after UPDATE on Disquera
for each row INSERT INTO Auditoria_Disquera(Nombre, Correo, Direccion, Telefono, Fundacion, Imagen,
    usuario, modificado, proceso, idDisquera) values(NEW.Nombre, NEW.Correo, NEW.Direccion, NEW.Telefono, NEW.Fundacion, NEW.Imagen,
    USER(), NOW(), 'Dato Actualizado', NEW.idDisquera) */;;
DELIMITER ;
DELIMITER ;;
/*!50003 CREATE*/ /*!50017 DEFINER=`root`@`localhost`*/ /*!50003 trigger eliminar_Auditoria_Disquera after DELETE on Disquera
for each row INSERT INTO Auditoria_Disquera(Nombre, Correo, Direccion, Telefono, Fundacion, Imagen,
    usuario, modificado, proceso, idDisquera) values(OLD.Nombre, OLD.Correo, OLD.Direccion, OLD.Telefono, OLD.Fundacion, OLD.Imagen,
    USER(), NOW(), 'Dato Eliminado', OLD.idDisquera) */;;
DELIMITER ;

--
-- Table structure for table `grupo`
--

CREATE TABLE `grupo` (
  `idGrupo` int(11) NOT NULL AUTO_INCREMENT,
  `idDisquera` int(11) DEFAULT NULL,
  `Nombre` varchar(60) DEFAULT NULL,
  `Origen` varchar(70) DEFAULT NULL,
  `Inicio` date DEFAULT NULL,
  `NoIntegrantes` int(11) DEFAULT NULL,
  `Genero` varchar(45) DEFAULT NULL,
  `Idioma` varchar(45) DEFAULT NULL,
  `Imagen` varchar(200) DEFAULT NULL,
  PRIMARY KEY (`idGrupo`),
  KEY `idDisquera` (`idDisquera`),
  CONSTRAINT `grupo_ibfk_1` FOREIGN KEY (`idDisquera`) REFERENCES `disquera` (`idDisquera`) ON DELETE CASCADE ON UPDATE CASCADE
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci;

--
-- Dumping data for table `grupo`
--

DELIMITER ;;
/*!50003 CREATE*/ /*!50017 DEFINER=`root`@`localhost`*/ /*!50003 trigger agregar_Auditoria_Grupo AFTER INSERT ON Grupo
for each ROW INSERT INTO Auditoria_Grupo(idDisquera, Nombre, Origen, Inicio, NoIntegrantes, Genero, idioma, Imagen,
    usuario, modificado, proceso, idGrupo) VALUES(NEW.idDisquera, NEW.Nombre, NEW.Origen, NEW.Inicio, NEW.NoIntegrantes, NEW.Genero, NEW.Idioma, NEW.Imagen,
    USER(), NOW(), 'Dato Insertado', NEW.idGrupo) */;;
DELIMITER ;
DELIMITER ;;
/*!50003 CREATE*/ /*!50017 DEFINER=`root`@`localhost`*/ /*!50003 trigger actualiza_Auditoria_Grupo AFTER UPDATE ON Grupo
for each ROW INSERT INTO Auditoria_Grupo(idDisquera, Nombre, Origen, Inicio, NoIntegrantes, Genero, idioma, Imagen,
    usuario, modificado, proceso, idGrupo) VALUES(NEW.idDisquera, NEW.Nombre, NEW.Origen, NEW.Inicio, NEW.NoIntegrantes, NEW.Genero, NEW.Idioma, NEW.Imagen,
    USER(), NOW(), 'Dato Actualizado', NEW.idGrupo) */;;
DELIMITER ;
DELIMITER ;;
/*!50003 CREATE*/ /*!50017 DEFINER=`root`@`localhost`*/ /*!50003 trigger eliminar_Auditoria_Grupo AFTER DELETE ON Grupo
for each ROW INSERT INTO Auditoria_Grupo(idDisquera, Nombre, Origen, Inicio, NoIntegrantes, Genero, idioma, Imagen,
    usuario, modificado, proceso, idGrupo) VALUES(OLD.idDisquera, OLD.Nombre, OLD.Origen, OLD.Inicio, OLD.NoIntegrantes, OLD.Genero, OLD.Idioma, OLD.Imagen,
    USER(), NOW(), 'Dato Eliminado', OLD.idGrupo) */;;
DELIMITER ;
DELIMITER ;;;
DELIMITER ;
DELIMITER ;;;
DELIMITER ;
DELIMITER ;;;
DELIMITER ;


